package com.zpark.oop.day05;

/**
 * 课程回顾：
 *      继承：
 *          [修饰符] class 子类的名字 extends 父类的名字{
 *              类体
 *          }
 *      子类可以使用父类非私有的的属性和方法，减少代码重复、提高代码的复用率
 *      在Java当中，采用的是单一继承关系（一个子类只能拥有一个父类），不支持多继承
 *      所有Java类都必须直接或者间接的继承Object类
 *      类型转换（向上造型、向下造型）：
 *          向上造型：父类引用指向子类对象   父类  父类引用 = new 子类名字();
 *          向下造型：子类引用指向父类对象   子类  子类引用 = (子类名字)父类引用;
 *               注意：向下造型可能会出现类型转换失败异常
 *      继承关系当中的构造方法：
 *              在子类的构造方法当中会默认调用父类的无参构造方法
 */

public class Demo01 {
    public static void main(String[] args) {
        // 创建Person的子类zhangsan对象
        ZhangSan zs = new ZhangSan();
        System.out.println(zs.name);
        zs.test();

        // 创建Person对象
        Person p = zs; // 向上造型
        System.out.println(p.name);

    }
}
